semantics and psuedo code